(function ($, undefined){
'use strict';
var defaults={
item: 3,
autoWidth: false,
slideMove: 1,
slideMargin: 10,
addClass: '',
mode: 'slide',
useCSS: true,
cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)',
easing: 'linear', //'for jquery animation',//
speed: 400, //ms'
auto: false,
pauseOnHover: false,
loop: false,
slideEndAnimation: true,
pause: 2000,
keyPress: false,
controls: true,
prevHtml: '',
nextHtml: '',
rtl: false,
adaptiveHeight: false,
vertical: false,
verticalHeight: 500,
vThumbWidth: 100,
thumbItem: 10,
pager: true,
gallery: false,
galleryMargin: 5,
thumbMargin: 5,
currentPagerPosition: 'middle',
enableTouch: true,
enableDrag: true,
freeMove: true,
swipeThreshold: 40,
responsive: [],
onBeforeStart: function ($el){},
onSliderLoad: function ($el){},
onBeforeSlide: function ($el, scene){},
onAfterSlide: function ($el, scene){},
onBeforeNextSlide: function ($el, scene){},
onBeforePrevSlide: function ($el, scene){}
};
$.fn.lightSlider=function (options){
if(this.length===0){
return this;
}
if(this.length > 1){
this.each(function (){
$(this).lightSlider(options);
});
return this;
}
var plugin={},
settings=$.extend(true, {}, defaults, options),
settingsTemp={},
$el=this;
plugin.$el=this;
if(settings.mode==='fade'){
settings.vertical=false;
}
var $children=$el.children(),
windowW=$(window).width(),
breakpoint=null,
resposiveObj=null,
length=0,
w=0,
on=false,
elSize=0,
$slide='',
scene=0,
property=(settings.vertical===true) ? 'height':'width',
gutter=(settings.vertical===true) ? 'margin-bottom':'margin-right',
slideValue=0,
pagerWidth=0,
slideWidth=0,
thumbWidth=0,
interval=null,
isTouch=('ontouchstart' in document.documentElement);
var refresh={};
refresh.chbreakpoint=function (){
windowW=$(window).width();
if(settings.responsive.length){
var item;
if(settings.autoWidth===false){
item=settings.item;
}
if(windowW < settings.responsive[0].breakpoint){
for (var i=0; i < settings.responsive.length; i++){
if(windowW < settings.responsive[i].breakpoint){
breakpoint=settings.responsive[i].breakpoint;
resposiveObj=settings.responsive[i];
}}
}
if(typeof resposiveObj!=='undefined'&&resposiveObj!==null){
for (var j in resposiveObj.settings){
if(resposiveObj.settings.hasOwnProperty(j)){
if(typeof settingsTemp[j]==='undefined'||settingsTemp[j]===null){
settingsTemp[j]=settings[j];
}
settings[j]=resposiveObj.settings[j];
}}
}
if(!$.isEmptyObject(settingsTemp)&&windowW > settings.responsive[0].breakpoint){
for (var k in settingsTemp){
if(settingsTemp.hasOwnProperty(k)){
settings[k]=settingsTemp[k];
}}
}
if(settings.autoWidth===false){
if(slideValue > 0&&slideWidth > 0){
if(item!==settings.item){
scene=Math.round(slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove));
}}
}}
};
refresh.calSW=function (){
if(settings.autoWidth===false){
slideWidth=(elSize - ((settings.item * (settings.slideMargin)) - settings.slideMargin)) / settings.item;
}};
refresh.calWidth=function (cln){
var ln=cln===true ? $slide.find('.lslide').length:$children.length;
if(settings.autoWidth===false){
w=ln * (slideWidth + settings.slideMargin);
}else{
w=0;
for (var i=0; i < ln; i++){
w +=(parseInt($children.eq(i).width()) + settings.slideMargin);
}}
return w;
};
plugin={
doCss: function (){
var support=function (){
var transition=['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];
var root=document.documentElement;
for (var i=0; i < transition.length; i++){
if(transition[i] in root.style){
return true;
}}
};
if(settings.useCSS&&support()){
return true;
}
return false;
},
keyPress: function (){
if(settings.keyPress){
$(document).on('keyup.lightslider', function (e){
if(!$(':focus').is('input, textarea')){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
if(e.keyCode===37){
$el.goToPrevSlide();
}else if(e.keyCode===39){
$el.goToNextSlide();
}}
});
}},
controls: function (){
if(settings.controls){
$el.after('
');
if(!settings.autoWidth){
if(length <=settings.item){
$slide.find('.lSAction').hide();
}}else{
if(refresh.calWidth(false) < elSize){
$slide.find('.lSAction').hide();
}}
$slide.find('.lSAction a').on('click', function (e){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
if($(this).attr('class')==='lSPrev'){
$el.goToPrevSlide();
}else{
$el.goToNextSlide();
}
return false;
});
}},
initialStyle: function (){
var $this=this;
if(settings.mode==='fade'){
settings.autoWidth=false;
settings.slideEndAnimation=false;
}
if(settings.auto){
settings.slideEndAnimation=false;
}
if(settings.autoWidth){
settings.slideMove=1;
settings.item=1;
}
if(settings.loop){
settings.slideMove=1;
settings.freeMove=false;
}
settings.onBeforeStart.call(this, $el);
refresh.chbreakpoint();
$el.addClass('lightSlider').wrap('');
$slide=$el.parent('.lSSlideWrapper');
if(settings.rtl===true){
$slide.parent().addClass('lSrtl');
}
if(settings.vertical){
$slide.parent().addClass('vertical');
elSize=settings.verticalHeight;
$slide.css('height', elSize + 'px');
}else{
elSize=$el.outerWidth();
}
$children.addClass('lslide');
if(settings.loop===true&&settings.mode==='slide'){
refresh.calSW();
refresh.clone=function (){
if(refresh.calWidth(true) > elSize){
var tWr=0,
tI=0;
for (var k=0; k < $children.length; k++){
tWr +=(parseInt($el.find('.lslide').eq(k).width()) + settings.slideMargin);
tI++;
if(tWr >=(elSize + settings.slideMargin)){
break;
}}
var tItem=settings.autoWidth===true ? tI:settings.item;
if(tItem < $el.find('.clone.left').length){
for (var i=0; i < $el.find('.clone.left').length - tItem; i++){
$children.eq(i).remove();
}}
if(tItem < $el.find('.clone.right').length){
for (var j=$children.length - 1; j > ($children.length - 1 - $el.find('.clone.right').length); j--){
scene--;
$children.eq(j).remove();
}}
for (var n=$el.find('.clone.right').length; n < tItem; n++){
$el.find('.lslide').eq(n).clone().removeClass('lslide').addClass('clone right').appendTo($el);
scene++;
}
for (var m=$el.find('.lslide').length - $el.find('.clone.left').length; m > ($el.find('.lslide').length - tItem); m--){
$el.find('.lslide').eq(m - 1).clone().removeClass('lslide').addClass('clone left').prependTo($el);
}
$children=$el.children();
}else{
if($children.hasClass('clone')){
$el.find('.clone').remove();
$this.move($el, 0);
}}
};
refresh.clone();
}
refresh.sSW=function (){
length=$children.length;
if(settings.rtl===true&&settings.vertical===false){
gutter='margin-left';
}
if(settings.autoWidth===false){
$children.css(property, slideWidth + 'px');
}
$children.css(gutter, settings.slideMargin + 'px');
w=refresh.calWidth(false);
$el.css(property, w + 'px');
if(settings.loop===true&&settings.mode==='slide'){
if(on===false){
scene=$el.find('.clone.left').length;
}}
};
refresh.calL=function (){
$children=$el.children();
length=$children.length;
};
if(this.doCss()){
$slide.addClass('usingCss');
}
refresh.calL();
if(settings.mode==='slide'){
refresh.calSW();
refresh.sSW();
if(settings.loop===true){
slideValue=$this.slideValue();
this.move($el, slideValue);
}
if(settings.vertical===false){
this.setHeight($el, false);
}}else{
this.setHeight($el, true);
$el.addClass('lSFade');
if(!this.doCss()){
$children.fadeOut(0);
$children.eq(scene).fadeIn(0);
}}
if(settings.loop===true&&settings.mode==='slide'){
$children.eq(scene).addClass('active');
}else{
$children.first().addClass('active');
}},
pager: function (){
var $this=this;
refresh.createPager=function (){
thumbWidth=(elSize - ((settings.thumbItem * (settings.thumbMargin)) - settings.thumbMargin)) / settings.thumbItem;
var $children=$slide.find('.lslide');
var length=$slide.find('.lslide').length;
var i=0,
pagers='',
v=0;
for (i=0; i < length; i++){
if(settings.mode==='slide'){
if(!settings.autoWidth){
v=i * ((slideWidth + settings.slideMargin) * settings.slideMove);
}else{
v +=((parseInt($children.eq(i).width()) + settings.slideMargin) * settings.slideMove);
}}
var thumb=$children.eq(i * settings.slideMove).attr('data-thumb');
if(settings.gallery===true){
pagers +='';
}else{
pagers +='' + (i + 1) + '';
}
if(settings.mode==='slide'){
if((v) >=w - elSize - settings.slideMargin){
i=i + 1;
var minPgr=2;
if(settings.autoWidth){
pagers +='' + (i + 1) + '';
minPgr=1;
}
if(i < minPgr){
pagers=null;
$slide.parent().addClass('noPager');
}else{
$slide.parent().removeClass('noPager');
}
break;
}}
}
var $cSouter=$slide.parent();
$cSouter.find('.lSPager').html(pagers);
if(settings.gallery===true){
if(settings.vertical===true){
$cSouter.find('.lSPager').css('width', settings.vThumbWidth + 'px');
}
pagerWidth=(i * (settings.thumbMargin + thumbWidth)) + 0.5;
$cSouter.find('.lSPager').css({
property: pagerWidth + 'px',
'transition-duration': settings.speed + 'ms'
});
if(settings.vertical===true){
$slide.parent().css('padding-right', (settings.vThumbWidth + settings.galleryMargin) + 'px');
}
$cSouter.find('.lSPager').css(property, pagerWidth + 'px');
}
var $pager=$cSouter.find('.lSPager').find('li');
$pager.first().addClass('active');
$pager.on('click', function (){
if(settings.loop===true&&settings.mode==='slide'){
scene=scene + ($pager.index(this) - $cSouter.find('.lSPager').find('li.active').index());
}else{
scene=$pager.index(this);
}
$el.mode(false);
if(settings.gallery===true){
$this.slideThumb();
}
return false;
});
};
if(settings.pager){
var cl='lSpg';
if(settings.gallery){
cl='lSGallery';
}
$slide.after('');
var gMargin=(settings.vertical) ? 'margin-left':'margin-top';
$slide.parent().find('.lSPager').css(gMargin, settings.galleryMargin + 'px');
refresh.createPager();
}
setTimeout(function (){
refresh.init();
}, 0);
},
setHeight: function (ob, fade){
var obj=null,
$this=this;
if(settings.loop){
obj=ob.children('.lslide ').first();
}else{
obj=ob.children().first();
}
var setCss=function (){
var tH=obj.outerHeight(),
tP=0,
tHT=tH;
if(fade){
tH=0;
tP=((tHT) * 100) / elSize;
}
ob.css({
'height': tH + 'px',
'padding-bottom': tP + '%'
});
};
setCss();
if(obj.find('img').length){
if(obj.find('img')[0].complete){
setCss();
if(!interval){
$this.auto();
}}else{
obj.find('img').load(function (){
setTimeout(function (){
setCss();
if(!interval){
$this.auto();
}}, 100);
});
}}else{
if(!interval){
$this.auto();
}}
},
active: function (ob, t){
if(this.doCss()&&settings.mode==='fade'){
$slide.addClass('on');
}
var sc=0;
if(scene * settings.slideMove < length){
ob.removeClass('active');
if(!this.doCss()&&settings.mode==='fade'&&t===false){
ob.fadeOut(settings.speed);
}
if(t===true){
sc=scene;
}else{
sc=scene * settings.slideMove;
}
var l, nl;
if(t===true){
l=ob.length;
nl=l - 1;
if(sc + 1 >=l){
sc=nl;
}}
if(settings.loop===true&&settings.mode==='slide'){
if(t===true){
sc=scene - $el.find('.clone.left').length;
}else{
sc=scene * settings.slideMove;
}
if(t===true){
l=ob.length;
nl=l - 1;
if(sc + 1===l){
sc=nl;
}else if(sc + 1 > l){
sc=0;
}}
}
if(!this.doCss()&&settings.mode==='fade'&&t===false){
ob.eq(sc).fadeIn(settings.speed);
}
ob.eq(sc).addClass('active');
}else{
ob.removeClass('active');
ob.eq(ob.length - 1).addClass('active');
if(!this.doCss()&&settings.mode==='fade'&&t===false){
ob.fadeOut(settings.speed);
ob.eq(sc).fadeIn(settings.speed);
}}
},
move: function (ob, v){
if(settings.rtl===true){
v=-v;
}
if(this.doCss()){
if(settings.vertical===true){
ob.css({
'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)',
'-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)'
});
}else{
ob.css({
'transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',
'-webkit-transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',
});
}}else{
if(settings.vertical===true){
ob.css('position', 'relative').animate({
top: -v + 'px'
}, settings.speed, settings.easing);
}else{
ob.css('position', 'relative').animate({
left: -v + 'px'
}, settings.speed, settings.easing);
}}
var $thumb=$slide.parent().find('.lSPager').find('li');
this.active($thumb, true);
},
fade: function (){
this.active($children, false);
var $thumb=$slide.parent().find('.lSPager').find('li');
this.active($thumb, true);
},
slide: function (){
var $this=this;
refresh.calSlide=function (){
if(w > elSize){
slideValue=$this.slideValue();
$this.active($children, false);
if((slideValue) > w - elSize - settings.slideMargin){
slideValue=w - elSize - settings.slideMargin;
}else if(slideValue < 0){
slideValue=0;
}
$this.move($el, slideValue);
if(settings.loop===true&&settings.mode==='slide'){
if(scene >=(length - ($el.find('.clone.left').length / settings.slideMove))){
$this.resetSlide($el.find('.clone.left').length);
}
if(scene===0){
$this.resetSlide($slide.find('.lslide').length);
}}
}};
refresh.calSlide();
},
resetSlide: function (s){
var $this=this;
$slide.find('.lSAction a').addClass('disabled');
setTimeout(function (){
scene=s;
$slide.css('transition-duration', '0ms');
slideValue=$this.slideValue();
$this.active($children, false);
plugin.move($el, slideValue);
setTimeout(function (){
$slide.css('transition-duration', settings.speed + 'ms');
$slide.find('.lSAction a').removeClass('disabled');
}, 50);
}, settings.speed + 100);
},
slideValue: function (){
var _sV=0;
if(settings.autoWidth===false){
_sV=scene * ((slideWidth + settings.slideMargin) * settings.slideMove);
}else{
_sV=0;
for (var i=0; i < scene; i++){
_sV +=(parseInt($children.eq(i).width()) + settings.slideMargin);
}}
return _sV;
},
slideThumb: function (){
var position;
switch (settings.currentPagerPosition){
case 'left':
position=0;
break;
case 'middle':
position=(elSize / 2) - (thumbWidth / 2);
break;
case 'right':
position=elSize - thumbWidth;
}
var sc=scene - $el.find('.clone.left').length;
var $pager=$slide.parent().find('.lSPager');
if(settings.mode==='slide'&&settings.loop===true){
if(sc >=$pager.children().length){
sc=0;
}else if(sc < 0){
sc=$pager.children().length;
}}
var thumbSlide=sc * ((thumbWidth + settings.thumbMargin)) - (position);
if((thumbSlide + elSize) > pagerWidth){
thumbSlide=pagerWidth - elSize - settings.thumbMargin;
}
if(thumbSlide < 0){
thumbSlide=0;
}
this.move($pager, thumbSlide);
},
auto: function (){
if(settings.auto){
clearInterval(interval);
interval=setInterval(function (){
$el.goToNextSlide();
}, settings.pause);
}},
pauseOnHover: function(){
var $this=this;
if(settings.auto&&settings.pauseOnHover){
$slide.on('mouseenter', function(){
$(this).addClass('ls-hover');
$el.pause();
settings.auto=true;
});
$slide.on('mouseleave',function(){
$(this).removeClass('ls-hover');
if(!$slide.find('.lightSlider').hasClass('lsGrabbing')){
$this.auto();
}});
}},
touchMove: function (endCoords, startCoords){
$slide.css('transition-duration', '0ms');
if(settings.mode==='slide'){
var distance=endCoords - startCoords;
var swipeVal=slideValue - distance;
if((swipeVal) >=w - elSize - settings.slideMargin){
if(settings.freeMove===false){
swipeVal=w - elSize - settings.slideMargin;
}else{
var swipeValT=w - elSize - settings.slideMargin;
swipeVal=swipeValT + ((swipeVal - swipeValT) / 5);
}}else if(swipeVal < 0){
if(settings.freeMove===false){
swipeVal=0;
}else{
swipeVal=swipeVal / 5;
}}
this.move($el, swipeVal);
}},
touchEnd: function (distance){
$slide.css('transition-duration', settings.speed + 'ms');
if(settings.mode==='slide'){
var mxVal=false;
var _next=true;
slideValue=slideValue - distance;
if((slideValue) > w - elSize - settings.slideMargin){
slideValue=w - elSize - settings.slideMargin;
if(settings.autoWidth===false){
mxVal=true;
}}else if(slideValue < 0){
slideValue=0;
}
var gC=function (next){
var ad=0;
if(!mxVal){
if(next){
ad=1;
}}
if(!settings.autoWidth){
var num=slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove);
scene=parseInt(num) + ad;
if(slideValue >=(w - elSize - settings.slideMargin)){
if(num % 1!==0){
scene++;
}}
}else{
var tW=0;
for (var i=0; i < $children.length; i++){
tW +=(parseInt($children.eq(i).width()) + settings.slideMargin);
scene=i + ad;
if(tW >=slideValue){
break;
}}
}};
if(distance >=settings.swipeThreshold){
gC(false);
_next=false;
}else if(distance <=-settings.swipeThreshold){
gC(true);
_next=false;
}
$el.mode(_next);
this.slideThumb();
}else{
if(distance >=settings.swipeThreshold){
$el.goToPrevSlide();
}else if(distance <=-settings.swipeThreshold){
$el.goToNextSlide();
}}
},
enableDrag: function (){
var $this=this;
if(!isTouch){
var startCoords=0,
endCoords=0,
isDraging=false;
$slide.find('.lightSlider').addClass('lsGrab');
$slide.on('mousedown', function (e){
if(w < elSize){
if(w!==0){
return false;
}}
if($(e.target).attr('class')!==('lSPrev')&&$(e.target).attr('class')!==('lSNext')){
startCoords=(settings.vertical===true) ? e.pageY:e.pageX;
isDraging=true;
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
$slide.scrollLeft +=1;
$slide.scrollLeft -=1;
$slide.find('.lightSlider').removeClass('lsGrab').addClass('lsGrabbing');
clearInterval(interval);
}});
$(window).on('mousemove', function (e){
if(isDraging){
endCoords=(settings.vertical===true) ? e.pageY:e.pageX;
$this.touchMove(endCoords, startCoords);
}});
$(window).on('mouseup', function (e){
if(isDraging){
$slide.find('.lightSlider').removeClass('lsGrabbing').addClass('lsGrab');
isDraging=false;
endCoords=(settings.vertical===true) ? e.pageY:e.pageX;
var distance=endCoords - startCoords;
if(Math.abs(distance) >=settings.swipeThreshold){
$(window).on('click.ls', function (e){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
e.stopImmediatePropagation();
e.stopPropagation();
$(window).off('click.ls');
});
}
$this.touchEnd(distance);
}});
}},
enableTouch: function (){
var $this=this;
if(isTouch){
var startCoords={},
endCoords={};
$slide.on('touchstart', function (e){
endCoords=e.originalEvent.targetTouches[0];
startCoords.pageX=e.originalEvent.targetTouches[0].pageX;
startCoords.pageY=e.originalEvent.targetTouches[0].pageY;
clearInterval(interval);
});
$slide.on('touchmove', function (e){
if(w < elSize){
if(w!==0){
return false;
}}
var orig=e.originalEvent;
endCoords=orig.targetTouches[0];
var xMovement=Math.abs(endCoords.pageX - startCoords.pageX);
var yMovement=Math.abs(endCoords.pageY - startCoords.pageY);
if(settings.vertical===true){
if((yMovement * 3) > xMovement){
e.preventDefault();
}
$this.touchMove(endCoords.pageY, startCoords.pageY);
}else{
if((xMovement * 3) > yMovement){
e.preventDefault();
}
$this.touchMove(endCoords.pageX, startCoords.pageX);
}});
$slide.on('touchend', function (){
if(w < elSize){
if(w!==0){
return false;
}}
var distance;
if(settings.vertical===true){
distance=endCoords.pageY - startCoords.pageY;
}else{
distance=endCoords.pageX - startCoords.pageX;
}
$this.touchEnd(distance);
});
}},
build: function (){
var $this=this;
$this.initialStyle();
if(this.doCss()){
if(settings.enableTouch===true){
$this.enableTouch();
}
if(settings.enableDrag===true){
$this.enableDrag();
}}
$(window).on('focus', function(){
$this.auto();
});
$(window).on('blur', function(){
clearInterval(interval);
});
$this.pager();
$this.pauseOnHover();
$this.controls();
$this.keyPress();
}};
plugin.build();
refresh.init=function (){
refresh.chbreakpoint();
if(settings.vertical===true){
if(settings.item > 1){
elSize=settings.verticalHeight;
}else{
elSize=$children.outerHeight();
}
$slide.css('height', elSize + 'px');
}else{
elSize=$slide.outerWidth();
}
if(settings.loop===true&&settings.mode==='slide'){
refresh.clone();
}
refresh.calL();
if(settings.mode==='slide'){
$el.removeClass('lSSlide');
}
if(settings.mode==='slide'){
refresh.calSW();
refresh.sSW();
}
setTimeout(function (){
if(settings.mode==='slide'){
$el.addClass('lSSlide');
}}, 1000);
if(settings.pager){
refresh.createPager();
}
if(settings.adaptiveHeight===true&&settings.vertical===false){
$el.css('height', $children.eq(scene).outerHeight(true));
}
if(settings.adaptiveHeight===false){
if(settings.mode==='slide'){
if(settings.vertical===false){
plugin.setHeight($el, false);
}else{
plugin.auto();
}}else{
plugin.setHeight($el, true);
}}
if(settings.gallery===true){
plugin.slideThumb();
}
if(settings.mode==='slide'){
plugin.slide();
}
if(settings.autoWidth===false){
if($children.length <=settings.item){
$slide.find('.lSAction').hide();
}else{
$slide.find('.lSAction').show();
}}else{
if((refresh.calWidth(false) < elSize)&&(w!==0)){
$slide.find('.lSAction').hide();
}else{
$slide.find('.lSAction').show();
}}
};
$el.goToPrevSlide=function (){
if(scene > 0){
settings.onBeforePrevSlide.call(this, $el, scene);
scene--;
$el.mode(false);
if(settings.gallery===true){
plugin.slideThumb();
}}else{
if(settings.loop===true){
settings.onBeforePrevSlide.call(this, $el, scene);
if(settings.mode==='fade'){
var l=(length - 1);
scene=parseInt(l / settings.slideMove);
}
$el.mode(false);
if(settings.gallery===true){
plugin.slideThumb();
}}else if(settings.slideEndAnimation===true){
$el.addClass('leftEnd');
setTimeout(function (){
$el.removeClass('leftEnd');
}, 400);
}}
};
$el.goToNextSlide=function (){
var nextI=true;
if(settings.mode==='slide'){
var _slideValue=plugin.slideValue();
nextI=_slideValue < w - elSize - settings.slideMargin;
}
if(((scene * settings.slideMove) < length - settings.slideMove)&&nextI){
settings.onBeforeNextSlide.call(this, $el, scene);
scene++;
$el.mode(false);
if(settings.gallery===true){
plugin.slideThumb();
}}else{
if(settings.loop===true){
settings.onBeforeNextSlide.call(this, $el, scene);
scene=0;
$el.mode(false);
if(settings.gallery===true){
plugin.slideThumb();
}}else if(settings.slideEndAnimation===true){
$el.addClass('rightEnd');
setTimeout(function (){
$el.removeClass('rightEnd');
}, 400);
}}
};
$el.mode=function (_touch){
if(settings.adaptiveHeight===true&&settings.vertical===false){
$el.css('height', $children.eq(scene).outerHeight(true));
}
if(on===false){
if(settings.mode==='slide'){
if(plugin.doCss()){
$el.addClass('lSSlide');
if(settings.speed!==''){
$slide.css('transition-duration', settings.speed + 'ms');
}
if(settings.cssEasing!==''){
$slide.css('transition-timing-function', settings.cssEasing);
}}
}else{
if(plugin.doCss()){
if(settings.speed!==''){
$el.css('transition-duration', settings.speed + 'ms');
}
if(settings.cssEasing!==''){
$el.css('transition-timing-function', settings.cssEasing);
}}
}}
if(!_touch){
settings.onBeforeSlide.call(this, $el, scene);
}
if(settings.mode==='slide'){
plugin.slide();
}else{
plugin.fade();
}
if(!$slide.hasClass('ls-hover')){
plugin.auto();
}
setTimeout(function (){
if(!_touch){
settings.onAfterSlide.call(this, $el, scene);
}}, settings.speed);
on=true;
};
$el.play=function (){
$el.goToNextSlide();
settings.auto=true;
plugin.auto();
};
$el.pause=function (){
settings.auto=false;
clearInterval(interval);
};
$el.refresh=function (){
refresh.init();
};
$el.getCurrentSlideCount=function (){
var sc=scene;
if(settings.loop){
var ln=$slide.find('.lslide').length,
cl=$el.find('.clone.left').length;
if(scene <=cl - 1){
sc=ln + (scene - cl);
}else if(scene >=(ln + cl)){
sc=scene - ln - cl;
}else{
sc=scene - cl;
}}
return sc + 1;
};
$el.getTotalSlideCount=function (){
return $slide.find('.lslide').length;
};
$el.goToSlide=function (s){
if(settings.loop){
scene=(s + $el.find('.clone.left').length - 1);
}else{
scene=s;
}
$el.mode(false);
if(settings.gallery===true){
plugin.slideThumb();
}};
$el.destroy=function (){
if($el.lightSlider){
$el.goToPrevSlide=function(){};
$el.goToNextSlide=function(){};
$el.mode=function(){};
$el.play=function(){};
$el.pause=function(){};
$el.refresh=function(){};
$el.getCurrentSlideCount=function(){};
$el.getTotalSlideCount=function(){};
$el.goToSlide=function(){};
$el.lightSlider=null;
refresh={
init:function(){}};
$el.parent().parent().find('.lSAction, .lSPager').remove();
$el.removeClass('lightSlider lSFade lSSlide lsGrab lsGrabbing leftEnd right').removeAttr('style').unwrap().unwrap();
$el.children().removeAttr('style');
$children.removeClass('lslide active');
$el.find('.clone').remove();
$children=null;
interval=null;
on=false;
scene=0;
}};
setTimeout(function (){
settings.onSliderLoad.call(this, $el);
}, 10);
$(window).on('resize orientationchange', function (e){
setTimeout(function (){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
refresh.init();
}, 200);
});
return this;
};}(jQuery));